package demo1;
import java.util.Arrays;

public class StringTest1 {
    public static void main(String[] args) {
        //定义一个字符串
        String str="xvsbshjskabagsjdld&*&%%$#$182827hddj";
        String string_sort = StringSort(str);
        //打印排序后的字符串
        System.out.println(string_sort);

    }

    private static String StringSort(String str) {
        /*
         * 函数体
         * 对字符串进行排序我们不会，但是我们之前学习过如何对数组进行排序，那么
         * 我们能不能将给定的字符串先转换为数组呢，然后对数组进行排序？
         * 可以，我们可以使用String类中的toCharArray函数
         */
        //将字符串str转换为字符数组
        char[] arrays= str.toCharArray();
        /*
         * 既然我们已经将字符串str转换为数组arrays了，接下来我们可以使用选择排序对数组
         * 进行排序
         */
		/*for (int i = 0; i<=arrays.length-2; i++) //i表示选中空间的下标
		{
			//j表示和选中空间相互比较空间的下标
			for (int j = i+1; j<=arrays.length-1; j++)
			{
				if(arrays[i]>arrays[j])
				{
					//说明选中空间大于比较空间，因为从小到大排序，则交换
					char temp=arrays[i];
					arrays[i]=arrays[j];
					arrays[j]=temp;
				}
			}
		}*/
        //对数组中的数据进行排序我们可以使用jdk中提供的函数,不需要返回值
        Arrays.sort(arrays);
        /*
         * 程序运行到此处说明已经排完序，我们需要使用String类中的
         * valueOf将字符数组变成字符串，由于valueOf是静态函数，所以
         * 通过类名String就可以调用
         */
        String str_sort = String.valueOf(arrays);
        //使用return关键字将排序后的数组str_sort返回给调用者
        return str_sort;
    }
}
